package com.lmaye.design.patterns.creation.singleton;

import java.util.Objects;

/**
 * -- 懒汉式
 * - 线程安全，同步方法(不推荐)
 *
 * <pre>
 *     优点：
 *     - 实现了懒加载效果，且线程安全
 *     缺点：
 *     - 每次通过获取实例方法时都会进行synchronized同步处理
 * </pre>
 *
 * @author lmay.Zhou
 * @date 2020/11/13 15:37 星期五
 * @qq 379839355
 * @email lmay@lmaye.com
 * @since JDK1.8
 */
public class SingletonLazy02 {
    private static SingletonLazy02 instance;

    private SingletonLazy02() {
        System.out.println("SingletonLazy02 Create");
    }

    public static synchronized SingletonLazy02 getInstance() {
        System.out.println("SingletonLazy02 Get Instance");
        if(Objects.isNull(instance)) {
            instance = new SingletonLazy02();
        }
        return instance;
    }
}
